package com.qys.livesMall.common.utils;


import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.LocalDateTimeUtil;
import lombok.experimental.UtilityClass;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.temporal.TemporalAdjusters;

@UtilityClass
public class DateUtils extends DateUtil {
    /**
     * 获取当前时间
     */
    public LocalDateTime dateTimeNow() {
        return LocalDateTime.now();
    }

    /**
     * 获取当前日期
     */
    public LocalDate dateNow() {
        return LocalDate.now();
    }

    /**
     * 获取 日期+时间
     */
    public LocalDateTime of(LocalDate localDate, LocalTime localtime){
       return LocalDateTime.of(localDate, localtime);
    }


    /**
     * 获取当月开始时间
     */
    public LocalDateTime startOfTheMouth(){
        return of(DateUtils.dateNow().with(TemporalAdjusters.firstDayOfMonth()), LocalTime.MIN);
    }

    /**
     * 获取当月结束时间
     */
    public LocalDateTime endOfTheMouth(){
        return of(DateUtils.dateNow().with(TemporalAdjusters.lastDayOfMonth()), LocalTime.MAX);
    }



    /**
     * 获取当天开始时间
     */
    public LocalDateTime startOfTheDay(){
        return of(DateUtils.dateNow(), LocalTime.MIN);
    }


    /**
     * 获取当天结束时间
     */
    public LocalDateTime endOfTheDay(){
        return of(DateUtils.dateNow(), LocalTime.MAX);
    }


    /**
     * 格式化当前日期 yyyyMMdd
     */
    public String parseDateNow() {
        return LocalDateTimeUtil.format(dateNow(), DatePattern.PURE_DATE_PATTERN);
    }

    /**
     * 格式化当前月日期 yyyyMM
     */
    public String parseMouthDateNow() {
        return LocalDateTimeUtil.format(dateNow(), DatePattern.SIMPLE_MONTH_PATTERN);
    }




}
